# 一、运算符
# 表达式：有运算符参与的式子
# (1) 算术运算符：得出的是一个数学的结果
# (2) 比较运算符：得出的是一个结论（真/假），在程序中用布尔值代表真假
# (3) 逻辑运算符：将多个比较表达式关联起来
# (4) 赋值运算符：=
# (5) 复合赋值运算符: +=、-=，/= 等等

# 二、运算符在代码中的体现
# 声明变量a和b
a = 99
b = 88

# (2.1) 算术运算符：+ - * /
print("数学运算符:")
# f-string:嵌入变量或者表达式
print(f" a + b = {a + b}" )
print(f" a - b = {a - b}" )
print(f" a / b = {a / b:.2f}" )     # :.2f: 保留2位小数
print(f" a * b = {a * b}" )
# //：整除 ，%：取余（模），** 幂运算
print(f" a // b = {a // b}" )
# Ctrl + D:复制一行
# Ctrl + Z：撤回
print(f" a % b = {a % b}" )     # 求商取余数，除不尽的部分
print(f" a ** b = {a ** b}" )   # a的b次方

# (2.2) 比较运算符：>、<、 >= 、<=、 ==、 !=
# 比较表达式的结果是一个布尔类型的值
print("比较运算符：")
print(f" a > b = {a > b}" )
print(f" a < b = {a < b}" )
print(f" a >= b = {a >= b}" )
print(f" a <= b = {a <= b}" )
print(f" a == b = {a == b}" )
print(f" a != b = {a != b}" )

# (2.3) 逻辑运算符：and 、or 、not
x = True
y = False

# (2.3.1) and（与，并且），and同时满足，整体条件才满足
# 结论：一假则假
print(f"x 与 y的结果：{x and y}")

# (2.3.2) or （或，或者），or两边满足一便，整体条件就满足
print(f"x 或 y的结果：{x or y}")

# (2.3.3) not (非，取反)，True → False ，False →True
print(f"x取反结果：{not x}")